一.環境部署
在正式使用NETBOX之前,需要提前配置以下所有:
1.Postsql
本節需要安裝和配置本地 PostgreSQL 數據庫。如果您已經有一個 PostgreSQL 數據庫服務,請跳到下一部分。
注意:NetBox 需要 PostgreSQL 11 或更高版本。請注意,不支持 MySQL 和其他關系數據庫。
本人以本機centos7鏡像為例子,首先以管理員權限進入虛擬機
首先確認自己的yum是否為最新 不然可能無法執行一些命令。
進入postsql選擇適合自己的postsql版本
傳送門:PostgreSQL:Linux 下載(Red Hat 系列)
本人選擇如下版本:
?按照提示在虛擬機的命令面板執行即可
?
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql12-server
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12
sudo systemctl start postgresql-12
在完成安裝后,需要為 NetBox 創建一個數據庫,并為其分配用戶名和密碼進行身份驗證。首先以系統 Postgres 用戶身份調用 PostgreSQL shell。
sudo -u postgres psql
此時可能會有一個權限不足的提醒,如下圖,可以忽略
繼續輸入以下命令,看到如下圖成功后即可
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K';
GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
2.Redis
NetBox v2.9.0 及更高版本需要 Redis v4.0 或更高版本。如果您的發行版沒有提供足夠新的版本,則需要從源代碼構建 Redis。有關更多詳細信息,請參閱 Redis 安裝文檔。
由于 redis 是用 C 語言開發,安裝之前必先確認是否安裝 gcc 環境(gcc -v),如果沒有安裝,執行以下命令進行安裝。
yum install -y gcc?
?然后wegt +自己的下載鏈接,下載完后tar -zvxf +壓縮包名解壓
tar -zvxf 7.0.7.tar.gz
3.Netbox
在安裝netbox前先安裝python
NetBox 需要 Python 3.8、3.9、3.10 或 3.11
安裝完python后導入依賴包
sudo yum install -y gcc libxml2-devel libxslt-devel libffi-devel libpq-devel openssl-devel redhat-rpm-config
克隆 Git 存儲庫
創建 NetBox 安裝的基本目錄。對于本指南,我們將使用 ./opt/netbox
安裝git:
sudo yum install -y git
因為git clone要訪問github,需要在下載完git后輸入以下的命令:
git config --global http.postBuffer 524288000
接下來,將 NetBox GitHub 存儲庫的主分支克隆到當前目錄中。(此分支始終保存當前穩定版本
sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .
該命令應生成類似于以下內容的輸出:git clone
Cloning into '.'... remote: Enumerating objects: 996, done. remote: Counting objects: 100% (996/996), done. remote: Compressing objects: 100% (935/935), done. remote: Total 996 (delta 148), reused 386 (delta 34), pack-reused 0 Receiving objects: 100% (996/996), 4.26 MiB | 9.81 MiB/s, done. Resolving deltas: 100% (148/148), done.
創建網絡盒系統用戶
創建名為 的系統用戶帳戶。我們將 WSGI 和 HTTP 服務配置為在此帳戶下運行。我們還將分配此用戶對媒體目錄的所有權。這確保了NetBox能夠保存上傳的文件。
sudo groupadd --system netbox
sudo adduser --system -g netbox netbox
sudo chown --recursive netbox /opt/netbox/netbox/media/
配置
移動到 NetBox 配置目錄并創建名為 .此文件將保存所有本地配置參數。
cd /opt/netbox/netbox/netbox/
sudo cp configuration_example.py configuration.py
使用您首選的編輯器打開以開始配置 NetBox。NetBox 提供了許多配置參數,但新安裝只需要以下四個參數:configuration.py
? ? ALLOWED_HOSTS
? ? DATABASE
? ? REDIS
? ? SECRET_KEY
ALLOWED_HOSTS
這是可以訪問此服務器的有效主機名和 IP 地址的列表。必須至少指定一個名稱或 IP 地址。(請注意,這并不限制可以訪問 NetBox 的位置:它僅用于 HTTP 主機標頭驗證。
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']?
如果您還不確定 NetBox 安裝的域名和/或 IP 地址是什么,則可以將其設置為通配符(星號)以允許所有主機值:
ALLOWED_HOSTS = ['*']?
數據庫
此參數保存數據庫配置詳細信息。您必須定義配置 PostgreSQL 時使用的用戶名和密碼。如果服務在遠程主機上運行,請相應地更新 和 參數。有關各個參數的更多詳細信息,請參閱配置文檔。HOSTPORT
DATABASE = { 'NAME': 'netbox', # Database name 'USER': 'netbox', # PostgreSQL username 'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password 'HOST': 'localhost', # Database server 'PORT': '', # Database port (leave blank for default) 'CONN_MAX_AGE': 300, # Max database connection age (seconds) }?
雷迪斯
Redis 是 NetBox 用于緩存和后臺任務隊列的內存中鍵值存儲。Redis 通常需要最少的配置;以下值應該足以滿足大多數安裝的需求。有關各個參數的更多詳細信息,請參閱配置文檔。
請注意,NetBox 需要規范兩個獨立的 Redis 數據庫:和 。它們可能都由同一 Redis 服務提供,但每個服務都應具有唯一的數字數據庫 ID。taskscaching
REDIS = { 'tasks': { 'HOST': 'localhost', # Redis server 'PORT': 6379, # Redis port 'PASSWORD': '', # Redis password (optional) 'DATABASE': 0, # Database ID 'SSL': False, # Use SSL (optional) }, 'caching': { 'HOST': 'localhost', 'PORT': 6379, 'PASSWORD': '', 'DATABASE': 1, # Unique ID for second database 'SSL': False, } }
SECRET_KEY
必須為此參數分配一個隨機生成的密鑰,用作哈希和相關加密函數的鹽。(但請注意,它從未直接用于加密機密數據。此密鑰對于此安裝必須是唯一的,建議長度至少為 50 個字符。它不應在本地系統外部共享。
父目錄中提供了一個名為的簡單 Python 腳本,以幫助生成合適的密鑰:generate_secret_key.py
單獨啟動一個命令面板,進入父目錄后使用以下命令,并將生成的隨機密碼粘貼到configuration.py
-
?